deaths_spainfandomcom_es-20200214-history
Módulo:Ficha de persona
local z = {} local argumentos -- Tabla de argumentos con los que se llama a la función local argumento={} -- Argumentos eliminando los argumentos sin datos local Entidad -- Tabla con los datos en Wikidata del libro. -- Ver Wikidata:WikiProject Books para las propiedades posibles local algunaPropiedadEnlazaWikidata -- Para alguna propiedad no existe la etiqueta ni el enlace mostrándose algo de la forma d:... local datosautoridad={} --inicializa la tabla que genera los cargos para cada autoridad -- Módulos utilizados local ModuloArgumentos = require('Módulo:Argumentos') local ModuloFicha = require('Módulo:Ficha') local ModuloFormatoTexto = require('Módulo:Formato texto') local ModuloIdentificadores = require('Módulo:Identificadores') local ModuloPaginas = require('Módulo:Páginas') local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos') local ModuloWikidata = require('Módulo:Wikidata') local ModuloTablas = require('Módulo:Tablas') local ModuloURL = require('Módulo:URL') -- Constantes local enMayusculas = {'formatoTexto' = 'mayúscula'} local contadorocupaciones = 0 --Implementa la lógica de si la persona tiene más de dos ocupaciones la ficha tenga un encabezado estandár local enMayusculasO = {'formatoTexto' = 'mayúscula', 'conjunción'=' o '} local listaNoOrdenada = {'lista' = 'no ordenada'} --, 'debeExistir' = 'sí' local lugar = {'conjunción'=' o ', 'valor-función' = ModuloWikidataFormatos.formatoLugar} local debeExistir = {'debeExistir' = 'sí'} local conPeriodo = {'lista' = 'no ordenada', 'formatoTexto' = 'mayúscula', 'calificativo' = ModuloWikidataFormatos.formatoPeriodo, ordenar='por fecha'} local conPeriodoDebeExistir = {'lista' = 'no ordenada', 'formatoTexto' = 'mayúscula', 'calificativo' = ModuloWikidataFormatos.formatoPeriodo, ordenar='por fecha', 'debeExistir' = 'sí'} function z.Ficha(frame) ModuloWikidata:setFrame(frame) -- No funciona si se pone ModuloWikidata.setFrame(marco) -- Obtener una copia de los argumentos eliminando los argumentos sin valor local argumento = ModuloArgumentos.obtenerArgumentosConValor(frame) -- Obtener los datos de la página donde se inserta la ficha de Wikidata. Entidad = mw.wikibase.getEntityObject(argumento'id') or {} --Determinar datos para la ficha local educacion = argumento'educación' or argumento'educacion' or propiedad('P512',{'enlace'='no'}) local almamater = argumentomáter' or argumento'alma_mater' or argumentomater' or argumento'almamáter' or argumento'alma_máter' or propiedad('P69', { 'formatoTexto' = 'mayúscula', 'lista' = 'no ordenada', 'calificativo' = 'P512','separadorcalificador'=' '}) etiquetaAnyosActivo = 'Años activo/a' --Valor por defecto if propiedad('P21') 'femenino' then etiquetaAnyosActivo = 'Años activa' etiquetaConocidoPor = 'Conocida por' etiquetaInfluencias = 'Influida por' etiquetacampeon = 'Campeona del mundo' funcionOcupacion = formatoOcupacionFemenino else etiquetaAnyosActivo = 'Años activo' etiquetaConocidoPor = 'Conocido por' etiquetaInfluencias = 'Influido por' funcionOcupacion = formatoOcupacionMasculino etiquetacampeon = 'Campeón del mundo' end seccionartistica='Carrera artística' --GENERAR CARGOS if argumento'cargo' nil then datosautoridad'cargo1'={tipo='sección',{,''},} else saltoautoridad=' ' datosautoridad'cargo1'=generarcargo(argumento,1,frame) SiHayCargos = true argumento'predecesor'= nil argumento'sucesor'= nil end for i=2, 10 do campovacio=0 if argumento'cargo'..i nil and argumento'inicio'..i nil then datosautoridad'cargo'..i={tipo='sección',{,},} else datosautoridad'cargo'..i=generarcargo(argumento,i,frame) SiHayCargos = true end end -- La ocupación y el área solo se obtienen de Wikidata si no se informan los campos de ocupación y área. -- Esto es porque para los artistas puede tener en Wikidata como ocupación "pintor y escultor" y -- tener informada el área con "pintura y escultura". local ocupacion = argumento'ocupación' or argumento'Ocupación' or argumento'profesión' local area = argumento'área' or argumento'area' or argumento'especialidad' or argumento'campos' if not ocupacion and not area then ocupacion = propiedad('P106', {'formatoTexto' = 'mayúscula', 'valor-función'=funcionOcupacion, 'calificativo' = ModuloWikidataFormatos.formatoPeriodo}) area = propiedad('P101', enMayusculas) -- Campo de trabajo end local ocupacionOArea = ocupacion or area nombre = argumento'nombre' or argumento'Nombre' or obtenerEtiquetaWikidata() or ModuloPaginas.nombrePagina({desambiguar='sí'}) -- Informar los datos de nacimiento y de fallecimiento fechaNacimiento = argumentode nacimiento' or argumento'fechadenacimiento' or argumento'fecha_nacimiento' or argumento'Fecha_nacimiento' or argumentonacimiento' or argumento'fechadenacimiento' or argumento'fechanac' or argumento'fecha_de_nacimiento' or propiedad('P569', enMayusculasO) lugarNacimiento = argumentode nacimiento' or argumento'lugardenacimiento' or argumento'lugar' or argumento'lugar_nacimiento' or argumento'Lugar_nacimiento' or argumentonacimiento' or argumento'lugarnac' or argumento'lugar_de_nacimiento' or propiedad('P19', lugar) if fechaNacimiento and lugarNacimiento then nacimiento = fechaNacimiento .. ' ' .. lugarNacimiento else nacimiento = fechaNacimiento or lugarNacimiento end fechaFallecimiento = argumentode fallecimiento' or argumento'fechadefallecimiento' or argumento'fecha_de_fallecimiento' or argumentofallecimiento' or argumento'fecha_fallecimiento' or argumento'Fecha_fallecimiento' or argumentode defunción' or argumento'fecha_muerte' or argumento'fechamuerte' or propiedad('P570', enMayusculasO) lugarFallecimiento = argumentode fallecimiento' or argumento'lugardefallecimiento' or argumento'lugar_de_fallecimiento' or argumentofallecimiento' or argumento'lugar_fallecimiento' or argumento'Lugar_fallecimiento' or argumentode defunción' or argumento'lugar_muerte' or argumento'lugarmuerte' or propiedad('P20', lugar) if fechaFallecimiento and lugarFallecimiento then fallecimiento = fechaFallecimiento .. ' ' .. lugarFallecimiento else fallecimiento = fechaFallecimiento or lugarFallecimiento end if argumento'padres' then padres = estaEnlazado(argumento'padres') else padre = propiedad('P22') --, debeExistir) madre = propiedad('P25') --, debeExistir) if padre and madre then padres = padre .. ' ' .. madre padre = nil madre = nil end end firma = argumento'firma' or argumento'Firma' or propiedad('P109') if propiedad('P856') then web = 'Sitio web' else web = argumento'web' or argumentoweb' or argumento'website' or argumentoweb' or argumento'sitioweb' end twitter = argumento'twitter' or argumento'Twitter' or obtenerTwitter() facebook = argumento'facebook' or argumento'Facebook' or obtenerFacebook() imdb = (argumento'imdb' and ('nm' .. argumento'imdb')) or propiedad('P345',{uno='sí'}) catholicHierarchy = propiedad('P1047') if argumentodebut' or argumentoretiro' then if argumentodebut' and argumentoretiro' nil then etiquetaactor ='Año de debut' datoactor = argumentodebut' elseif argumentodebut' nil and argumentoretiro' then etiquetaactor='Año de retiro' datoactor = argumentodebut' elseif argumentodebut' and argumentoretiro' then etiquetaactor = etiquetaAnyosActivo datoactor = argumentodebut'.. '-'..argumentoretiro' end else etiquetaactor = datoactor ='' end -- Título según la ocupación y si la persona ha muerto -- No mostrar para los artistas ningún icono en la cabecera de la ficha if ocupacionOArea and (ocupacionOArea:find('Aactor') or ocupacionOArea:find('Aactriz') or ocupacionOArea:find('Pproductor de cine') or ocupacionOArea:find('Ddirector de cine') ) then contadorocupaciones=contadorocupaciones+1 tipocabecera = 'cine' estilotitulo = 'background-color:#f9e999' seccionartistica = '' end if contadorocupaciones 0 and ocupacionOArea and (ocupacionOArea:find('Aartista') or ocupacionOArea:find('Ppintor') or ocupacionOArea:find('Eescultor') or ocupacionOArea:find('Ppintura') or ocupacionOArea:find('Eescultura') or ocupacionOArea:find('Ffotograf') or ocupacionOArea:find('Aartes visuales')) then contadorocupaciones=1 tipocabecera = '' estilotitulo = 'background-color:#8DB1C3;color:#FFF' end if contadorocupaciones 0 and ocupacionOArea and (ocupacionOArea:find('Aajedrecista') or argumento'elo' or rankingajedrez) then contadorocupaciones=1 tipocabecera = '' estilotitulo = 'background-color: #D8BFD8' end if contadorocupaciones 0 and ocupacionOArea and (ocupacionOArea:find('Eescritor') or ocupacionOArea:find('Nnovelista') or ocupacionOArea:find('Ppoeta') or ocupacionOArea:find('Ddramaturgo')) then contadorocupaciones=contadorocupaciones+1 tipocabecera = 'libro' estilotitulo = 'background-color:#4c6099;color:#FFF' end if contadorocupaciones 0 and ocupacionOArea and (ocupacionOArea:find('Mmúsico') or ocupacionOArea:find('Ccompositor') or ocupacionOArea:find('Ccantante')) then contadorocupaciones=contadorocupaciones+1 tipocabecera = 'música' estilotitulo = 'background-color:#f0e68c' end --Pendiente por poner el estilo de POLITICO! if contadorocupaciones 0 and ((ocupacionOArea and (ocupacionOArea:find('Ppolítico'))) or argumento'cargo') then contadorocupaciones=contadorocupaciones+1 tipocabecera = 'libro' estilotitulo = 'background-color:#4c6099;color:#FFF' end if contadorocupaciones 0 and ocupacionOArea and ocupacionOArea:find('Pperiodista') then contadorocupaciones=contadorocupaciones+1 tipocabecera = 'revista' estilotitulo = 'background-color:#ED8;color:#FFF' end if contadorocupaciones 0 and ocupacionOArea and ocupacionOArea:find('Ddiseñador') then contadorocupaciones=contadorocupaciones+1 estilotitulo = 'background-color:#ccccff' end if contadorocupaciones 2 or contadorocupaciones 0 then tipocabecera = 'humano fn' estilotitulo = 'background-color:#8DB1C3;color:#FFF' end if fechaFallecimiento or lugarFallecimiento then estilotitulo = 'background-color:#c0c0c0;color:#000' end estilocabecera = estilotitulo if SiHayCargos true then cargosocupados = '' tipocabecera= nil estilocabecera= 'background-color:transparent;' --estilotitulo ='background-color:#8DB1C3;color:#FFF' estilotitulo ='background-color:#E6E6FA;' else cargosocupados = propiedad('P39', conPeriodo) end if argumentoemmy' then eliminaremmmy='Eemmy' end if argumentogrammy' then eliminargrammy='rammy' end if argumentocannes' then eliminarcanes='Cannes' end if argumentoglobo de oro' then eliminarpremio2='Globo'end if argumentotony' then eliminartony='Tony' end if argumentoóscar' then eliminaroscar ='Óscar' end if argumentobafta' then eliminarbafta ='BAFTA' end if argumentosag' then eliminarpremio='indicato'end if argumentosan sebastian' then eliminarsebastian='Sebas'end if argumento'ranking' or argumento'ránking' then rankingajedrez= (argumento'ranking' or argumento'ránking') .. frame:preprocess(' Clasificación FIDE ') end local Ficha = { clase = 'biography vcard', -- Título tipocabecera = tipocabecera, titulo = nombre, colorfondo = colorfondo, estilotitulo = estilocabecera, --Imagen --De momento no se pone una raya como en la ficha de escritor tras la imagen imagen = argumento'imagen' or argumento'Imagen' or argumento'foto' or propiedad('P18', {uno='sí'}), 'tamañoimagen'= argumentode imagen' or argumento'tamaño' or argumentoimagen' or argumento'tamañoimagen' or argumento'tamañodelaimagen' or argumentode foto' or '220px', -- or '200px' en la ficha de escritor, 192 en la ficha de artista. Tomo por defecto 220, el tamaño de thumb pie = argumentode imagen' or argumento'pieimagen' or argumento'descripción' or argumento'descripcion' or argumentode foto' or argumento'piedefoto' or argumento'textoimagen' or argumento'TextoImagen' or argumento'texto_imagen' or argumentode foto' , -- Pendiente: en la ficha de escritor el texto se pone entre y en la de artista se usa el estilo font-size:smaller --Etiquetas y datos estiloetiqueta = 'width:33%', -- 25% en la ficha de escritor. Sin especificar en la de persona --'padding:0.2em 1.0em 0.2em 0.2em; background-color:transparent; line-height:1.2em;', -- En la ficha de persona original estilodatos = 'padding:0.2em; line-height:1.3em; vertical-align:middle;', {tipo='sección', {, saltoautoridad}, }, datosautoridad'cargo1', datosautoridad'cargo2', datosautoridad'cargo3', datosautoridad'cargo4', datosautoridad'cargo5', datosautoridad'cargo6', datosautoridad'cargo7', datosautoridad'cargo8', datosautoridad'cargo9', datosautoridad'cargo10', {tipo='sección', 'titulo' = 'Información personal', -- Ver la ficha de noble o la ficha de diseñador estilotitulo = estilotitulo, {'Nombre de nacimiento', propiedad('P1477') or propiedad('P513') or argumentocompleto' or argumento'nombre_completo' or argumento'Nombre_completo' or argumentonacimiento' or argumento'nombredenacimiento' or argumentode nacimiento' or argumento'nombre_real' or argumento'nombrecompleto' }, {'Nombre nativo', argumentonativo' or propiedad('P1559')}, -- Es para el nombre en la escritura nativa -- Habría que coger también el idioma {'Apodo', argumento'apodo'}, {'Otros nombres', argumentonombres', -- ¿No es lo mismo que el apodo????? clase='nickname'}, {'Nacimiento', nacimiento}, {'Fallecimiento', fallecimiento}, {'Causa de muerte', argumentomuerte' or propiedad('P509', enMayusculas) or propiedad('P1196', enMayusculas)}, -- circunstancias de la muerte {'Lugar de sepultura', argumento'lugar_de_descanso' or propiedad('P119', enMayusculas)}, {'Residencia', argumento'residencia' or argumento'país_de_residencia' or argumento'pais_de_residencia' or argumento'lugar_de_residencia' or propiedad('P551'), clase='etiqueta'}, {'Nacionalidad', argumento'nacionalidad' or argumento'Nacionalidad' or --Pendiente hacer que salga el gentilicio propiedad('P27', {'valor-función' = ModuloWikidataFormatos.formatoGentilicio, 'formatoTexto' = 'mayúscula', 'calificativo' = ModuloWikidataFormatos.formatoPeriodo, ordenar='por fecha'}), clase='category'}, {'Ciudadanía', argumento'ciudadanía' or -- ¿No es lo mismo que la nacionalidad? argumento'ciudadania', clase='category'}, {'Lengua materna', argumento'lengua_materna' or argumento'Lengua_materna' or propiedad('P103', enMayusculas)}, {'Etnia', propiedad('P172', enMayusculas) or argumento'etnia' or argumentoétnico', clase='category'}, {'Creencias religiosas', propiedad('P140', enMayusculas) or argumento'religión' or argumento'creencias'}, {'Partido político', argumentopolítico' or argumento'partido' or propiedad('P102')}, {'Otras afiliaciones políticas', argumento'afiliaciones' or propiedad('P1416')}, }, {tipo='sección', estilotitulo = estilotitulo, 'titulo' = 'Características físicas', -- Ver la ficha de noble o la ficha de diseñador {'Altura', argumento'altura' or argumento'estatura' or propiedad('P2048')}, {'Peso', argumento'peso' or propiedad('P2067')}, {'Ojos', argumentode ojos'}, {'Cabello', argumentode cabello'}, {'Pecho natural', argumentonatural'}, {'Orientación sexual',argumentosexual' or argumentoreal'} }, {tipo='sección', -- Familia. estilotitulo = estilotitulo, 'titulo' = 'Familia', -- Ver la ficha de noble -- En el caso del cónyuge tiene preferencia el argumento hasta que se muestre los calficativos. clase ='plainlist', -- Mostrar las listas sin viñetas {'Familia nobiliaria', propiedad('P53')}, {(padres and 'Padres') or (padre and 'Padre') or 'Madre', -- Mostrar padres, padre o madre según esté informado ambos o solo uno de ellos padres or padre or madre}, {'Cónyuge', estaEnlazado(argumento'cónyuge' or argumento'conyuge' or argumento'Cónyuge' or argumento'Conyuge' or propiedad('P26', conPeriodo))}, {'Pareja', estaEnlazado(argumento'pareja' or propiedad('P451', conPeriodo))}, {'Hijos', estaEnlazado(argumento'hijos' or argumento'Hijos') or propiedad('P40', {'lista' = 'no ordenada', 'debeExistir' = 'sí'})}, {'Familiares', estaEnlazado(argumento'familiares')}, --- ¿¿¿¿¿¿¿¿¿??????????? -- Hermano: P7, padastro: p43, pariente: p1038 }, {tipo='sección', 'titulo' = 'Educación', estilotitulo = estilotitulo, {'Educación', educacion}, {'Alma máter', almamater, clase='plainlist'}, {'Alumno de', propiedad('P1066', conPeriodoDebeExistir), clase='plainlist'}, {'Posgrado', argumento'posgrado'}, {'Supervisora doctoral', argumento'supervisora_doctoral'}, {'Supervisores doctorales' , argumento'supervisores_doctorales'}, {'Supervisor doctoral' , argumento'supervisor_doctoral'}, {'Tesis', ModuloFormatoTexto.enlazar(argumento'tesis_url', ModuloFormatoTexto.enCursivas(argumento'tesis_título'), argumento'tesis_año')}, }, {tipo='sección', 'titulo' = 'Información profesional', estilotitulo = estilotitulo, {'Ocupación', ocupacion, clase='role'}, {'Área', area}, {etiquetaConocidoPor, argumento'conocido' or argumentopor'}, {'Cargos ocupados', cargosocupados,clase='plainlist'}, -- políticos o en empresas {'Empresa', argumento'empresa'}, {'Salario', argumento'salario'}, {'Patrimonio', argumento'patrimonio' or argumento'fortuna'}, {'Tratamiento', argumento'tratamiento'}, {etiquetaAnyosActivo, argumentoactivo' or argumentoactiva' or argumento'periodo' or argumento'período' or argumento'Periodo' or argumento'tiempo' or argumento'Tiempo'}, -- Periodistas {tipo='sección', 'titulo' = seccionartistica, -- Ver la ficha de noble o la ficha de diseñador estilotitulo = estilotitulo, {'Rol debut',argumentodebut'}, {etiquetaactor, datoactor}, {'Películas',argumentode películas'}, }, {'Empleador', argumento'empleador' or argumento'institución_de_trabajo' or argumento'nombre_estudio' or propiedad('P108', conPeriodo), clase ='plainlist'}, {'Restaurantes', argumento'restaurantes'}, -- Para cocineros. Restaurantes en los que ha trabajado. {'Medio', argumentode comunicación'}, -- Para periodistas. Unas veces informados con el significado de área y otras con el empleador {'Programas', argumento'programas'}, -- Para periodistas -- Ocupación (escritores, artistas, periodistas, diseñadores, etc) {'Seudónimo', argumento'seudónimo' or argumento'Seudónimo' or propiedad('P742')}, {'Lengua de producción literaria', argumento'lengua_literaria' or argumento'Lengua_literaria'}, {'Género', argumento'género' or argumento'Género' or propiedad('P136', enMayusculas)}, {'Movimientos', argumento'movimiento' or argumento'Movimiento' or argumento'movimientos' or propiedad('P135', enMayusculas)}, -- Obras notables. Se ponen de momento en cursivas pero es incorrecto en el caso de arquitectos. {'Obras notables', argumento'obras' or argumentonotables' or argumento'obras_notables' or argumentonotables' or argumentodestacadas' or argumento'proyectos_representativos' or propiedad('P800',{'enlace'='sí', 'lista' = 'no ordenada', 'debeExistir' = 'sí', 'formatoTexto'='cursivas'}), clase='plainlist' }, {'Artistas relacionados', argumento'relacionados'}, --{, listaDesplegable(etiquetaInfluencias, argumentopor' or argumentopor' or -- argumento'influencias' or argumento'Influencias', frame)}, --{, listaDesplegable('Influyó a', argumento'influyó' or argumento'Influyó', frame)}, -- Militares {'Rama militar', argumento'rama' or propiedad('P241', enMayusculas)}, {'Rango', argumento'rango' or propiedad('P410', conPeriodo), clase='plainlist'}, {'Participó en', argumento'conflictos' or argumento'batallas' or propiedad('P607', enMayusculas)}, -- Ajedrecistas {tipo='sección', {'Título', argumento'título' or argumento'titulo'}, -- {etiquetacampeon, argumento'campeón' or argumento'campeon'}, {'Elo', propiedad('P1087',{'formatoUnidad' = 'número', 'calificativo' = 'P585'}) or argumento'elo' }, -- {'Mejor elo', argumentoelo'}, {'Ránking', rankingajedrez}, {'Mejor ránking', argumentoranking'}, {'Término', argumento'término' or -- argumento'termino'}, {'Predecesor', argumento'predecesor'}, {'Sucesor', argumento'sucesor'}, }, {'Miembro de', propiedad('P463', conPeriodoDebeExistir), clase='plainlist'}, }, {tipo='sección', 'titulo' = 'Premios artísticos', -- Ver la ficha de noble o la ficha de diseñador estilotitulo = estilotitulo, {'Premios Óscar', argumentoóscar'}, {'Globos de Oro', argumentoglobo de oro'}, {'Premios BAFTA', argumentobafta'}, {'Premios Emmy', argumentoemmy'}, {'Premios SAG', argumentosag'}, {'Premios Tony', argumentotony'}, {'Premios Grammy', argumentogrammy'}, {'Festival de Cannes', argumentocannes'}, {'Berlinale', argumentoberlinale'}, {'Festival Internacional de San Sebastián', argumentosan sebastian'}, {'Festival Internacional de Cine de Moscú', argumentomoscu'}, {'Premios Goya', argumentogoya' }, {'Premios César', argumentocésar' or argumentocesar'}, {'Premios Ariel', argumentoariel'}, {'Premios Cóndor de Plata', argumentocóndor' or argumentocondor'}, {'Otros premios', argumentopremios'}, }, {tipo='sección', 'titulo' = 'Carrera deportiva', -- Ver la ficha de noble o la ficha de diseñador estilotitulo = estilotitulo, {'Deporte', argumento'deporte'}, }, {,seccionDesplegable('Títulos y reconocimientos deportivos',argumento'títulos', frame,estilotitulo)}, -- Los premios pueden ser para varias ocupaciones por lo que se ponen al final -- Premios, condecoraciones, medallas, distinciones, etc. {'Distinciones', argumento'premios' or argumento'Premios' or argumento'premio' or argumento'Premio' or argumento'premios2' or propiedad('P166', {'lista' = 'no ordenada', 'formatoTexto' = 'mayúscula', 'calificativo' = 'P585', ordenar='por fecha', eliminaranexo='sí',eliminar1=eliminarpremio,eliminar2=eliminarpremio2,eliminar3=eliminaroscar, eliminar4=eliminarsebastian, eliminar5=eliminartony,eliminar6=eliminarbafta, eliminar7=eliminarcanes, eliminar8=eliminargrammy,eliminar9=eliminaremmmy}), clase ='plainlist'}, -- Mostrar las listas sin viñetas -- Con etiqueta/datos como en las fichas de escritor y artista en vez de como en la ficha de persona {'Firma', (firma and ('150px'))}, -- 150 px como en la ficha de escritor en vez de 128 {tipo='sección', -- Web clase ='plainlinks', titulo ='Web', estilotitulo = estilotitulo, {'Sitio web', ModuloURL.enlazar(web)}, {'Facebook', facebook and ('.. facebook .. ' ' .. facebook .. '')}, -- Ver la plantilla facebook {'Twitter', twitter and ('.. twitter .. ' ' .. twitter .. '')}, -- Ver la plantilla twitter {'Ficha', ModuloFormatoTexto.enVariasLineas({ imdb and ('.. imdb .. ' Ficha en IMDb') -- Ver la ficha de actor , catholicHierarchy and ('.. catholicHierarchy .. ".html Ficha en catholic-hierarchy.org") -- Ver la Ficha de líder religioso })} }, {tipo='sección', titulo ='Notas', estilotitulo='border-top:1px solid #c0c0c0;text-align:left', {, argumento'notas', estilodatos='text-align:left;font-size:90%; line-height:1.2em'} }, {'Fuente biográfica', argumento'fuentebiográfica'}, } categorias = '' -- Ahora la categoría se informa en Módulo:Wikidata/Formatos --if algunaPropiedadEnlazaWikidata then -- categorias = 'Categoría:Wikia Muertes em España:Páginas con propiedades de Wikidata sin etiqueta' --end if (fechaNacimiento or lugarNacimiento) and not (fechaFallecimiento or lugarFallecimiento) then categorias = categorias .. 'Categoría:Personas vivas' end --if educacion and almamater then -- categorias = categorias .. 'Categoría:Wikia Muertes em España:Páginas que tienen informado el campo educación' --end return ModuloFicha.infobox(Ficha) .. categorias end function generarcargo(argumento,numero,frame) dato=numero --se requieren dos variables por el primer parámetro if numero 1 then numero = end --si es el primer cargo, entonces no tiene número if argumento 'cargo'..numero nil then titulo='' elseif argumento'escudo'..numero nil then titulo=argumento'cargo'..numero -- si no tiene escudo entonces dejar en blanco, si tiene escudo ponerlo else titulo='[[Archivo:'..argumento'escudo'..numero..'|40px]] '..argumento'cargo'..numero end if argumento'distrito'..numero then titulo = titulo..' por '..argumento'distrito'..numero..'' end if argumento'embajadorde'..numero then titulo = titulo .. frame:preprocess(' ') end-- }|tamaño=44x40px}} if argumento'país'..numero then titulo = titulo .. frame:preprocess(' ') end if argumento'subtítulo'..numero then titulo = titulo .. ' '..argumento'subtítulo'..numero..'' end periodo = '' if argumento'inicio'..numero and argumento'final'..numero then periodo = argumento'inicio'..numero..'-'.. argumento'final'..numero elseif argumento'final'..numero then periodo = 'Hasta el ' .. argumento'final'..numero elseif argumento'inicio'..numero then titulo = titulo .. ' Actualmente en el cargo' periodo = 'Desde el '..argumento'inicio'..numero end cadenatexto={tipo='sección', 'titulo'=titulo, estilotitulo = 'background-color:#E6E6FA;', {, periodo}, {'Vicegobernador', argumento'vicegobernador'..numero }, {'Presidente', argumento'presidente'..numero }, {'Monarca', argumento'monarca'..numero }, {'Primer ministro', argumento'primerministro'..numero }, {'Gobernador', argumento'gobernador'..numero }, {'Jefe de Gobierno', argumento'jefe'..numero}, {'Junto a', argumento'juntoa'..numero }, {'Nominado por', argumento'nominado'..numero }, {'Designado por', argumento'designado'..numero }, {'Gabinete', argumento'gabinete'..numero }, {'Vicepresidente', argumento'vicepresidente'..numero }, {'Viceprimerministro', argumento'viceprimerministro'..numero }, {'Teniente gobernador', argumento'teniente'..numero }, {'Vicealcalde', argumento'vicealcalde'..numero }, {'Vicejefe de gobierno', argumento'vicejefe'..numero}, {'Canciller', argumento'canciller'..numero}, {'Vicecanciller', argumento'vicecanciller'..numero}, {'Predecesor', argumento'predecesor'..numero}, {'Sucesor', argumento'sucesor'..numero}, {'Compañero de fórmula', argumento'fórmula'..numero}, {'Oponente/s', argumento'oponentes'..numero}, {'En el cargo', argumento'enelcargo'..numero }, {argumentodato..'data1', argumentodato..'data2' }, {argumentodato..'data3', argumentodato..'data4' }, {,' '} } return cadenatexto end -- Función que devuelve la lista de los valores de una propiedad en Wikidata formateados function propiedad(idPropiedad,opciones) if Entidad and Entidad.claims and Entidad.claimsidPropiedad then if not opciones then opciones = {} end opciones'propiedad' = idPropiedad valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claimsidPropiedad) if valorPropiedad and valorPropiedad:match('%[%then algunaPropiedadEnlazaWikidata = true end return valorPropiedad end end function obtenerEtiquetaWikidata() if Entidad and Entidad.labels and Entidad.labels.es then return Entidad.labels.es.value end end function listaDesplegable(titulo, lista, frame) if not lista then return end formatoprevio='background:transparent' return frame:preprocess(' ') end function seccionDesplegable(titulo, lista, frame,estilotitulo) if not lista then return end return frame:preprocess(' ') end function estaEnlazado(que) -- De momento devolver siempre que está enlazado pues falla en por ejemplo: -- |Hijos = 6 if true then return que end if not que then return end for contenido in que:gmatch("%[%(.+)]") do if not contenido:match('^:d:') and not contenido:match('^Categoría:') then return que end end end function formatoOcupacionMasculino(valor, opciones, frame) local enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion = ModuloWikidataFormatos.obtenerDatos(valor) -- Corregir la ocupación. -- Ejemplos: -- - "actor/actriz" --> "actor" -- - "informático/a teórico/a" --> "informático teórico" if etiquetaOcupacion then etiquetaOcupacion = etiquetaOcupacion:gsub('(^%s+)(/^%s+)', '%1') end return ModuloWikidataFormatos.enlazar(enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion, opciones) end function corregirOcupacion(etiquetaOcupacion) if not etiquetaOcupacion or not etiquetaOcupacion:find('/') then return etiquetaOcupacion end local palabrasCorregidas={} local palabraCorregida for palabra in etiquetaOcupacion:gmatch("^%s+") do palabraCorregida = palabra:match('^(.+)o/a$') or -- científico/a --> científic palabra:match('^(.+)/a$') -- escritor/a --> escritor if palabraCorregida then table.insert(palabrasCorregidas, palabraCorregida .. 'a') else table.insert(palabrasCorregidas, palabra:match('^.+/(.+)$') or -- actor/actriz palabra -- de, literatura, infantil ) end end return table.concat(palabrasCorregidas, ' ') end function formatoOcupacionFemenino(valor, opciones, frame) local enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion = ModuloWikidataFormatos.obtenerDatos(valor) return ModuloWikidataFormatos.enlazar(enlaceOcupacion, corregirOcupacion(etiquetaOcupacion), idEntidadOcupacion, opciones) end function obtenerValorCalificativo(Propiedad, Calificativo, ValorPropiedad) -- Obtener el valor del primer calificativo de la propiedad con el valor recibido if not Entidad or not Entidad.claims or not Entidad.claimsPropiedad then return end for k,v in pairs(Entidad.claimsPropiedad) do if v.mainsnak and v.mainsnak.datavalue and v.mainsnak.datavalue.value and v.mainsnak.datavalue.value'numeric-id' ValorPropiedad and v.qualifiers and v.qualifiersCalificativo and v.qualifiersCalificativo1 and v.qualifiersCalificativo1.datavalue then return v.qualifiersCalificativo1.datavalue.value end end end function obtenerFacebook() return obtenerValorCalificativo('P553' -- cuenta en red social , 'P554' --dirección en red social , 355) -- Facebook or propiedad('P2013'); -- Ejemplo: Gillian Flynn end function obtenerTwitter() return obtenerValorCalificativo('P553' -- cuenta en red social , 'P554' --dirección en red social , 2002) -- Twitter end return z